package com.cloudkinto.service.cost;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.common.web.SingleResult;
import com.cloudkinto.service.cost.vo.CostWorkAddReq;
import com.cloudkinto.vo.cost.*;
import com.cloudkinto.entity.CostDo;
import com.cloudkinto.vo.cost.out.CostItemForOrderPageDto;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * service接口
 * </p>
 *
 * @author hua
 * @since 2024-11-29
 */
public interface CostService extends IService<CostDo> {
    /**
     * 工单费用流水
     */
    void costWordAdd(CostWorkAddReq req, Long userId, Long tenantId);

    Object add(CostAddReq req, Long userId, Long tenantId);

    void insertEntity(CostInfoEntity entity, Long userId);

    int delete(Long id, Long userId);

    Object detail(Long id, Long tenantId);

    SingleResult pageInit(String source, Long userId, Long companyId, Long tenantId);

    List<CostPageVo> getList(Map<String, Object> map);

    PageResult getListPage(Map<String, Object> map);

    void manualAdjust(CostManualAdjustWmsReq req, Long userId);

    void manualAdjust(CostManualAdjustOmpReq req, Long userId, Long tenantId);

    List<CostItemForOrderPageDto> getCostItem(List<Long> orderIds, String orderType, Long tenantId);

    void exportCost(Map<String, Object> map, Long tenantId, HttpServletResponse response);
}
